﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BusinessEntities.IniciativaVecinal;
using BusinessLayer.IniciativaVecinal;
using ParticipacionVecinalWeb.Models.ParticipacionVecinal;

namespace ParticipacionVecinalWeb.Services.IniciativaVecinal
{
    public class IniciativaVecinalService
    {

        private IIniciativaVecinalBL business;

        public IniciativaVecinalService()
        {
            business = new IniciativaVecinalBL();
        }

        public List<IV> BuscarIV(int Tipo, int UsuarioId, int Estado, DateTime FechaInicio, DateTime FechaFin)
        {

            var responseIV = new List<IV>();
            
            IEnumerable<tbIniciativaVecinal> data = business.BuscarIV(Tipo, UsuarioId, Estado, FechaInicio, FechaFin);

            foreach (var e in data)
            {

                var sector    = e.tbVecino.tbDetalleSector_SubSector.tbSector.DescripcionSector;
                var subsector = e.tbVecino.tbDetalleSector_SubSector.tbSubSector.DescripcionSubSector;
                var codigoIV  = e.NumeroIV;
                var delegado  = e.tbVecino.DelegadoVecinal;
                var reunion   = e.tbReunion.NombreReunion;
                var requerimiento = e.tbRequerimientoes.Where(r => r.idIniciativaVecinal == e.idIniciativaVecinal);
                var estado = ConstantsBE.IVEstados.TODOS.ToString();

                if (requerimiento != null && requerimiento.Count() > 0)
                {
                    var response = requerimiento.First().tbDocumentosRequerimientoes.Count();
                    if (response > 0)
                    {
                        estado = ConstantsBE.IVEstados.PROCESO.ToString();
                    }
                    else
                    {
                        estado = ConstantsBE.IVEstados.DEBATE.ToString();
                    }
                }
                else
                {
                    estado = ConstantsBE.IVEstados.DEBATE.ToString();
                }

                responseIV.Add(new IV { ID= e.idIniciativaVecinal, C = codigoIV, R = delegado, SE = sector, S = subsector, E = estado  });
            }

            return responseIV;
        }

    }
}